#-*-coding:UTF-8 -*-
'''
Created on 2013-6-6

@author: hanjiewu
'''
import sys

#一个名称空间，就是一个从名称到对象的关系映射集合
#路径搜索的过程
#搜索路径，一个是启动 Python 的 shell 或命令行的 PYTHONPATH 环境变量
#可以在任何需要放置数据的地方获得一个名字空间
#只从模块导入名字的另一个副作用是那些名字会成为局部空间的一部分
print sys.path
print sys.modules.keys()
#动态添加搜索路径
sys.path.append('')
#__builtins__ 包含内建名称空间中内建名字的集合
print dir(__builtins__)

#在函数中导入模块，则作用域就在函数里
def foo():
    import os
    print os.path
#全局名称空间
print globals()

#打印全局和局部名称空间
def foo1():
    print '\ncalling foo1()...'
    aString = 'bar'
    anInt = 42
    print 'foo1()s globals:', globals().keys()
    print "foo1()s locals:", locals().keys()
print "__main__'s globals:", globals().keys()
print "__main__'s locals:", locals().keys(), foo1()